package com.mz.mattress.admin.service;

import com.mz.mattress.admin.api.resp.MenuVo;
import com.mz.mattress.admin.entity.SysMenu;
import com.mz.mattress.api.common.Result;

import java.util.List;
import java.util.Set;

public interface SysMenuService {

    /**
     * 列表查询
     *
     * @param name 菜单关键字
     * @return
     */
    List<SysMenu> list(String name);

    SysMenu getById(Integer id);

    /**
     * 获取菜单  pid=0为第一级
     *
     * @param pid
     * @return
     */
    List<SysMenu> getByPid(Integer pid);

    /**
     * 获取菜单上级
     * @param id
     * @param menus
     * @return
     */
    List<MenuVo> getSuperior(Integer id, List<MenuVo> menus);

    List<MenuVo> buildTree(List<MenuVo> menus);

    void save(SysMenu sysMenu);

    void updateById(SysMenu sysMenu);

    /**
     * 根据角色Id 获取所有菜单权限
     *
     * @param roleId
     * @return
     */
    List<String> getPermissionByRoleId(Integer roleId);

    /**
     * 删除所有菜单
     *
     * @param ids
     */
    Result deleteByIds(Set<Integer> ids);

}
